﻿using System.Collections.Generic;

namespace com.IronOne.BoardPACWinAppUtil.Util
{
    public class ApplicationConstants
    {
        public const int KSize = 32;
        public static readonly byte[] Iv = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
        public static readonly char Seperator = (char) 200;
        public static readonly char MeetingNoteNewLineChar = (char) 134;

        public static readonly string ApprovalOptionsForMeetingsAndCirculars =
            "Approve,Reject,Abstain,Interest,RPT,Approved,Rejected,Carried Forward";

        /* Not used. Enum used instead of this
        /// <summary>
        /// EnumContainer.BoardMemberIndividualParticipationStatus needs to update in case any change made here
        /// focus on string item order
        /// </summary>
        public static List<string> BoardMemberIndividualParticipationStatus = new List<string>
        {
            { "None" },
            { "Accepted" },
            { "Declined" },
            { "Tentative" },
            { "ConCall" }
        };
        */

        public static List<string> PaperStatus = new List<string>
        {
            "Pending",
            "Approved",
            "Rejected",
            "CarriedForward",
            "Cancelled",
            "Confirmed",
            "Withdrawn"
        };

        /// <summary>
        ///     EnumContainer.PaperStatusCust needs to update in case any change made here
        ///     focus on string item order
        /// </summary>
        public static List<string> PaperStatusCust = new List<string>
        {
            "Approved",
            "Rejected",
            "CarriedForward",
            "Confirmed"
        };

        public static class RequestType
        {
            public const string POST = "POST";
            public const string GET = "GET";
            public const string PUT = "PUT";
            public const string DELETE = "DELETE";
        }

        public static class UserDbSettingNames
        {
            public const string dateOnlyFormat = "dateOnlyFormat";
            public const string EnforceOnlineLoginDuration = "EnforceOnlineLoginDuration";
            public const string MaxOfflineLoginInterval = "MaxOfflineLoginInterval";
            public const string OfflineConsecutiveLimit = "OfflineConsecutiveLimit";
            public const string dateTimeFormat = "dateTimeFormat";
            public const string timeOnlyFormat = "timeOnlyFormat";
            public const string ApprovalButtonsStatusForMeeting = "ApprovalButtonsStatusForMeeting";
            public const string ApprovalButtonsStatusForCircular = "ApprovalButtonsStatusForCircular";
            public const string ShowCircularMeetingDate = "ShowCircularMeetingDate";
            public const string LastViewedPaper = "LastViewedPaper";
            public const string AnnotationButtonsStatus = "AnnotationButtonsStatus";
            public const string PaperNextButtonEnabled = "PaperNextButtonEnabled";
            public const string BlockApprovalsForMeetingPapers = "BlockApprovalsForMeetingPapers";
            public const string Email_annotated_paper_by_BM = "Email_annotated_paper_by_BM";
            public const string NSURLConnectionTimeOut = "NSURLConnectionTimeOut";
            public const string MemberPresenceUpdateInterval = "MemberPresenceUpdateInterval";
            public const string Email_annotated_paper_by_BS = "Email_annotated_paper_by_BS";
            public const string BlockCommentingOnFinalizedPaper = "BlockCommentingOnFinalizedPaper";
            public const string BlockApprovingFinalizedPaper = "BlockApprovingFinalizedPaper";
            public const string CheckedNoOfDaysPendingApprovals = "CheckedNoOfDaysPendingApprovals";
            public const string ShowPendingApprovalAlert = "ShowPendingApprovalAlert";
            public const string CommentMemberSelectAll = "CommentMemberSelectAll";
            public const string ShowDeactivateUsers = "ShowDeactivateUsers";
            public const string ShowLogoutConfirmationAlert = "ShowLogoutConfirmationAlert";
            public const string ServerURLforIPAD = "ServerURLforIPAD";
            public const string SupportInfoEmail = "SupportInfoEmail";
            public const string ShowSupportInfo = "ShowSupportInfo";
            public const string SupportInfoPhone = "SupportInfoPhone";
            public const string ShowDeletedUsers = "ShowDeletedUsers";
            public const string ApprovalConfirmaitons = "ApprovalConfirmaitons";
            public const string ForcePasswordChange = "ForcePasswordChange";
            public const string ViewApprovalComment = "ViewApprovalComment";
            public const string Email_annotated_comments_by_BM = "Email_annotated_comments_by_BM";
            public const string Email_annotated_comments_by_BS = "Email_annotated_comments_by_BS";
            public const string AppOfflineUsageCheck = "AppOfflineUsageCheck";
            public const string PDFNextPreviousPageBtn = "PDFNextPreviousPageBtn";
            public const string BlockCopyPaperTextToClipboard = "BlockCopyPaperTextToClipboard";
            public const string ClearPastMeetingPapers = "ClearPastMeetingPapers";
            public const string EnableNotePadToBS = "EnableNotePadToBS";
            public const string AgendaAutoCreation = "AgendaAutoCreation";
            public const string HeadingsAllowed = "HeadingsAllowed";
            public const string AgendaSequencingEnable = "AgendaSequencingEnable";
            public const string AddSignaturePage = "AddSignaturePage";
            public const string SupportName = "SupportName";
            public const string EnablePaperPrintingBS = "EnablePaperPrintingBS";
            public const string VotingCommentsByBM = "VotingCommentsByBM";
            public const string EnablePaperPrintingBM = "EnablePaperPrintingBM";
            public const string EnableNotePadToBM = "EnableNotePadToBM";
            public const string EnableIndividualPresenceReason = "EnableIndividualPresenceReason";
            public const string PasswordPolicyText = "PasswordPolicyText";
            public const string AutomaticAnnotationBackupDuration = "AutomaticAnnotationBackupDuration";
            public const string EnableDisclaimerNotice = "EnableDisclaimerNotice";
            public const string EnableBMToEmailComments = "EnableBMToEmailComments";
            public const string AnnotationBackup = "AnnotationBackup";
        }

        public static class GeneralDbSettingNames
        {
            public const string AppVersion = "AppVersion";
            public const string DateFormats = "DateFormats";
            public const string DateFormatSelected = "DateFormatSelected";
            public const string DownloadUrl = "DownloadUrl";
            public const string Emails = "Emails";
            public const string SupportInfoPhone = "SupportInfoPhone";
            public const string ServerCommands = "ServerCommands";
            public const string ServerMessage = "ServerMessage";
            public const string ServerUrl = "ServerUrl";
            public const string ShowSupportInfo = "ShowSupportInfo";
            public const string SupportName = "SupportName";
            public const string SyncFrequencies = "SyncFrequencies";
            public const string SyncFrequencySelected = "SyncFrequencySelected";
            public const string SyncFrequencyServerDecides = "SyncFrequencyServerDecides";
            public const string SyncSettings = "SyncSettings";
            public const string DeviceRegistrationStatus = "DeviceRegistrationStatus";
            public const string ServerId = "ServerId";
            public const string ServerTime = "ServerTime";
            public const string WebAppVersion = "WebAppVersion";
            public const string MinWebVersion = "MinWebVersion";
            public const string CooperateId = "CooperateId";
            public const string LastAnnotationBackup = "LastAnnotationBackup";
        }

        public static class LogActions
        {
            public const string UpdateIndividualPresence = "UpdateIndividualPresence";
            public const string UpdateMeetingPresence = "UpdateMeetingPresence";
            public const string UpdatePaperPresentStatus = "UpdatePaperPresentStatus";
            public const string AddMeetingComment = "AddMeetingComment";
            public const string AddPaperComment = "AddPaperComment";
            //public const string UpdatePaperViewed = "UpdatePaperViewed";
            public const string UpdatePaperApproval = "UpdatePaperApproval";
            public const string UpdateMeetingNote = "UpdateMeetingNote";
            public const string UpdateUserApprovals = "UpdateUserApprovals";
            public const string UpdateViewedPaperComments = "paper_comments_viewed";
            public const string UpdateViewedMeetingComments = "meeting_comments_viewed";
            public const string UpdateViewedPaper = "UpdateViewedPaper";
            public const string UpdateBoardMemberParticipation = "UpdateBoardMemberParticipation";
            public const string UploadAnnotation = "UploadAnnotation";
        }

        #region Paper

        /// <summary>
        ///     0
        /// </summary>
        public const int PAPERNOTDOWNLOADEDSTATUS = 0;

        /// <summary>
        ///     1
        /// </summary>
        public const int PAPERDOWNLOADEDSTATUS = 1;

        /// <summary>
        ///     0
        /// </summary>
        public const byte AGENDAISHIDDEN = 0;

        /// <summary>
        ///     1
        /// </summary>
        public const byte AGENDAISALLOWED = 1;

        /// <summary>
        ///     2
        /// </summary>
        public const byte AGENDAISRESTRICTED = 2;

        /// <summary>
        ///     214
        /// </summary>
        public const int VersionThreeSharedS = 214;

        public static readonly string PDF = "PDF";
        public static readonly string SHARE = "Share";
        public static readonly string SENT = "Sent";
        public static readonly string RECEIVED = "Received";
        public static readonly string ORIGINAL = "Original";

        public static readonly string ANNOTATEEXT = ".xfdf";
        public static readonly string BOOKMARKEXT = ".bookmark";
        public static readonly string PDFEXT = ".pdf";

        public static List<byte> LivePaperStatuses = new List<byte> {1, 2, 3, 5};

        #endregion
    }
}